Hi, I have a model where operators are picking from a conveyor belt. However they only pick from one side of the belt. What changes can I make to this model so that associatesPick from other side of conveyor.fsm pick from both sides?
Hi, I have a model where operators are picking from a conveyor belt. However they only pick from one side of the belt. What changes can I make to this model so that associatesPick from other side of conveyor.fsm pick from both sides?
The code that determines the pickup location currently always sends the operators to the right edge of the conveyor.
You can alter it to choose the edge based on the current position of the operator. Another potential issue is which position on the A* grid is determined to be closest to the target coordinates. Setting the pickup location to be half a conveyor width away from the edge seems to work.
Thanks Felix, I moved around a few pallet locations and started running into an error not sure what's causing the error. Also, is there a way for me to block certain zones on the simulation where operators can't walk? For instance in the model you shared the operators were going around the top of the conveyor. I only want them to go around at the bottom of the conveyor, if at all. Also is it possible for the operator to prioritize packages with labels on their side of the conveyor over the one for the other side? pick-from-other-side-of-conveyor-1.fsm
Use barriers, dividers or preferred/mandatory paths to limit where the operators walk on the A* grid.
To prioritize picking items that go to a queue on the current side of the operator, you'd need to:
- Determine the current side of the operator. This could be a binary value, based on whether the y-coordinate of the operator is larger, smaller than the position of the conveyor (as long as you don't rotate the system's orientation.
- Have an array label that contains two arrays that each contain the label values that go to the respective side of the conveyor. (So something like [[9, 12, 8, 11, 7, 10], [1, 4, 3, 6, 5, 2]] for the current model)
- Add an expression field to the list that checks if the item's label is part of the array that belongs to the current side of the operator. For example, let's assume a label "side" denotes the side of the operator as either 1 (above) or 2 (below) and the array label described above is called "LabelsBySide". Then the expression would be
puller.LabelsBySide[puller.side].as(Array).indexOf(value.Type) > 0
If the type label goes to the current side, this returns 1, otherwise 0.
- Then order the items in the pull query by this expression first (ORDER BY isOnSide DESC, distance ASC)
Alternatively, you could add this check to the code of the "distance field", adding extra distance if the operator would have to switch sides to unload the item.15 People are following this question.
FlexSim can help you understand and improve any system or process. Transform your existing data into accurate predictions.
FlexSim is a fully 3D simulation software environment. FlexSim can be used to simulate any process in any industry.
FlexSim®, FlexSim Healthcare™, Problem Solved.®, the FlexSim logo, the FlexSim X-mark, and the FlexSim Healthcare logo with stylized Caduceus mark are trademarks of FlexSim Software Products, Inc. All rights reserved.
Privacy | Do not sell or share my personal information | Cookie preferences | Report noncompliance | Terms of use | Legal | © Autodesk Inc. All rights reserved